home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1981 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
- #ifndef lint
- static char sccsid[] = "@(#)mvwin.c 5.3 (Berkeley) 6/30/88";
- #endif /* not lint */
-
- # include "curses.ext"
-
- /*
- * relocate the starting position of a window
- *
- */
-
- int mvwin(win, by, bx)
- reg WINDOW *win;
- reg int by, bx; {
-
- register WINDOW *orig;
- register int dy, dx;
-
- if (by + win->_maxy > LINES || bx + win->_maxx > COLS)
- return ERR;
- dy = by - win->_begy;
- dx = bx - win->_begx;
- orig = win->_orig;
- if (orig == NULL) {
- orig = win;
- do {
- win->_begy += dy;
- win->_begx += dx;
- _swflags_(win);
- win = win->_nextp;
- } while (win != orig);
- }
- else {
- if (by < orig->_begy || win->_maxy + dy > orig->_maxy)
- return ERR;
- if (bx < orig->_begx || win->_maxx + dx > orig->_maxx)
- return ERR;
- win->_begy = by;
- win->_begx = bx;
- _swflags_(win);
- _set_subwin_(orig, win);
- }
- touchwin(win);
- return OK;
- }
-